#include "TpPrint.hpp"
#include <string>
#include <iostream>

int main()
{
    // 创建不同类型的tuple进行测试
    auto t1 = std::make_tuple(1, "Hello", 3.14);
    auto t2 = std::make_tuple(42, std::string("World"), true, 2.718);

    std::cout << "Testing first print method (万能转换法):" << std::endl;
    print(t1);
    print(t2);

    std::cout << "\nTesting PrintTuple (偏特化+静态方法):" << std::endl;
    PrintTuple(t1);
    PrintTuple(t2);

    std::cout << "\nTesting print_tuple (使用逗号操作符方法):" << std::endl;
    print_tuple(t1);
    print_tuple(t2);

    // 测试右值引用版本
    std::cout << "\nTesting with rvalue:" << std::endl;
    print(std::make_tuple(100, "Test", 9.9));

    return 0;
}